package cn.demoncat.util.io;

import java.awt.Color;

import cn.demoncat.util.exception.ParamRuntimeException;
import cn.demoncat.util.lang.constant.StringConstant;

/**
 * 颜色工具
 * 
 * @author 延晓磊
 *
 * @since 2018年10月31日
 */
public final class ColorUtil {

	/**
	 * 获取颜色
	 * 
	 * @param hexColor	16进制颜色代码，如"#000000"
	 * 
	 * @return	Color
	 * 
	 * @author 延晓磊
	 *
	 * @since 2018年10月31日
	 */
	public static Color getColor(String hexColor) {
		try {
			//去除#号，转换为16进制，创建color
			return new Color(Integer.parseInt(hexColor.replaceFirst(StringConstant.HASH, StringConstant.EMPTY), 16));
		} catch (Exception e) {
			throw new ParamRuntimeException("颜色代码错误：" + hexColor, e);
		}
	}
	
	/**
	 * 获取颜色值
	 * 
	 * @param hexColor	16进制颜色代码，如"#000000"
	 * 
	 * @return	RGB颜色数值
	 * 
	 * @author 延晓磊
	 *
	 * @since 2018年10月31日
	 */
	public static int getColorNum(String hexColor) {
		try {
			//去除#号，转换为16进制，与0xff000000位移（参考Color的构造方法）
			return 0xff000000 | Integer.parseInt(hexColor.replaceFirst(StringConstant.HASH, StringConstant.EMPTY), 16);
		} catch (Exception e) {
			throw new ParamRuntimeException("颜色代码错误：" + hexColor, e);
		}
	}
}
